package gui;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.util.ArrayList;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.JTextField;

import com.toedter.calendar.JDateChooser;

import javax.swing.JTextPane;
import javax.swing.border.TitledBorder;
import javax.swing.JButton;

import negocio.Tarea;
import negocio.TareaControlador;
import negocio.Usuario;
import negocio.UsuarioControlador;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class TareasExaminar extends JFrame {

	private JPanel contentPane;
	private JTextField textField;
	private JTextField textField_1;
	Tarea tarea;
	private JTextField textField_2;
	private JTextField nombreAlumno;
	private JTextField estadoTarea;
	private JTextField contactoOrigenUsuario;
	private JTextField contactoOrigenArea;
	private JTextField contactoOrigenCurso;
	private JTextField contactoCierreUsuario;
	private JTextField contactoCierreArea;
	private JTextField contactoCierreCurso;
	private JDateChooser dateChooser;
	private JDateChooser fechaCreacion;
	private JDateChooser fechaCierre;
	JTextPane textPane;
	JDateChooser contactoOrigenFecha;
	JTextPane contactoOrigenObs;
	JDateChooser contactoCierreFecha;
	JTextPane contactoCierreObs;
	JTextPane motivoCancelacion;
	
	public void llenarVentana()
	{
		textField_2.setText(tarea.getUsuarioAsignado().getNombre()+" "+tarea.getUsuarioAsignado().getApellido());
		textField.setText(tarea.getAlumno().getDni());
		textField_1.setText(tarea.getTipoTarea());
		nombreAlumno.setText(tarea.getAlumno().getNombre());
		dateChooser.setDate(tarea.getFechaLimite());
		textPane.setText(tarea.getComentarios());
		//fechaCreacion.setDate(tarea.getFechaCreacion()); DESARROLLAR
		//fechaCierre.setDate(tarea.getFechaCierre()); DESARROLLAR
		if(tarea.getContactoApertura()!=null)
		{
			contactoOrigenFecha.setDate(tarea.getContactoApertura().getFecha());
			contactoOrigenUsuario.setText(tarea.getContactoApertura().getUsr().getNombre()+" "+tarea.getContactoApertura().getUsr().getApellido());
			if(tarea.getContactoApertura().getAreaInteres()!=null)
				contactoOrigenArea.setText(tarea.getContactoApertura().getAreaInteres().getNombre());
			if(tarea.getContactoApertura().getCursoInteres()!=null)
				contactoOrigenCurso.setText(tarea.getContactoApertura().getCursoInteres().getNombre());
			if(tarea.getContactoApertura().getObservaciones()!=null)
				contactoOrigenObs.setText(tarea.getContactoApertura().getObservaciones());
		}
		if(tarea.getContactoCierre()!=null)
		{
			System.out.println(tarea.getContactoCierre()==null);
			contactoCierreFecha.setDate(tarea.getContactoCierre().getFecha());
			contactoCierreUsuario.setText(tarea.getContactoCierre().getUsr().getNombre()+" "+tarea.getContactoCierre().getUsr().getApellido());
			if(tarea.getContactoCierre().getAreaInteres()!=null)
				contactoCierreArea.setText(tarea.getContactoCierre().getAreaInteres().getNombre());
			if(tarea.getContactoCierre().getAreaInteres()!=null)
				contactoCierreCurso.setText(tarea.getContactoCierre().getCursoInteres().getNombre());
			if(tarea.getContactoCierre().getObservaciones()!=null)
				contactoCierreObs.setText(tarea.getContactoCierre().getObservaciones());
		}
		//if(tarea.getEstado().equals("Cancelada"))
			//motivoCancelacion.setText(tarea.getMotivoCancelacion); DESARROLLAR		
		
		
	}
	

	/**
	 * Launch the application.
	 */
	/*public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					TareasCrear frame = new TareasCrear();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public TareasExaminar(Tarea tarea, Tareas padre) {
		
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e){
				padre.nullTareasExaminar();
				dispose();
			}
		});
		
		this.tarea=tarea;
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		this.setTitle("Examinar tarea");
		setBounds(100, 100, 489, 664);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JPanel panel_3 = new JPanel();
		panel_3.setBorder(new TitledBorder(null, "Informacion de la tarea", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel_3.setBounds(10, 11, 456, 203);
		contentPane.add(panel_3);
		panel_3.setLayout(null);
		
		JLabel lblTipoDeTarea = new JLabel("Tipo de tarea");
		lblTipoDeTarea.setBounds(6, 19, 80, 14);
		panel_3.add(lblTipoDeTarea);
		
		JLabel lblAlumno = new JLabel("DNI alumno");
		lblAlumno.setBounds(231, 19, 55, 14);
		panel_3.add(lblAlumno);
		
		JLabel lblUsuarioAsignado = new JLabel("Usuario Asignado");
		lblUsuarioAsignado.setBounds(6, 47, 89, 14);
		panel_3.add(lblUsuarioAsignado);
		
		JLabel lblFechaLimite = new JLabel("Fecha limite");
		lblFechaLimite.setBounds(6, 103, 61, 14);
		panel_3.add(lblFechaLimite);
		
		textField = new JTextField();
		textField.setBounds(324, 16, 126, 20);
		panel_3.add(textField);
		textField.setEnabled(false);
		textField.setEditable(false);
		textField.setColumns(10);
		
		
		dateChooser = new JDateChooser();
		dateChooser.setBounds(96, 100, 126, 20);
		panel_3.add(dateChooser);
		dateChooser.setEnabled(false);
		
		
		JPanel panel = new JPanel();
		panel.setBounds(6, 128, 440, 68);
		panel_3.add(panel);
		panel.setBorder(new TitledBorder(null, "Comentarios de la tarea", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel.setLayout(null);
		
		textPane = new JTextPane();
		textPane.setEditable(false);
		textPane.setBounds(6, 16, 423, 41);
		panel.add(textPane);
		
		
		textField_1 = new JTextField();
		textField_1.setBounds(96, 16, 126, 20);
		panel_3.add(textField_1);
		textField_1.setEnabled(false);
		textField_1.setEditable(false);
		textField_1.setColumns(10);
		
		
		textField_2 = new JTextField();
		textField_2.setBounds(96, 44, 126, 20);
		panel_3.add(textField_2);
		textField_2.setEnabled(false);
		textField_2.setEditable(false);
		textField_2.setColumns(10);
		
		
		JLabel lblNombreAlumno = new JLabel("Nombre alumno");
		lblNombreAlumno.setBounds(231, 47, 80, 14);
		panel_3.add(lblNombreAlumno);
		
		nombreAlumno = new JTextField();
		nombreAlumno.setBounds(324, 44, 126, 20);
		panel_3.add(nombreAlumno);
		nombreAlumno.setEnabled(false);
		nombreAlumno.setEditable(false);
		nombreAlumno.setColumns(10);
		
		estadoTarea = new JTextField();
		estadoTarea.setBounds(96, 72, 126, 20);
		panel_3.add(estadoTarea);
		estadoTarea.setEnabled(false);
		estadoTarea.setEditable(false);
		estadoTarea.setColumns(10);
		
		JLabel label = new JLabel("Fecha creacion");
		label.setBounds(231, 75, 80, 14);
		panel_3.add(label);
		
		JLabel lblEstado = new JLabel("Estado");
		lblEstado.setBounds(6, 75, 46, 14);
		panel_3.add(lblEstado);
		
		JDateChooser fechaCierre = new JDateChooser();
		fechaCierre.setEnabled(false);
		fechaCierre.setBounds(324, 103, 126, 20);
		panel_3.add(fechaCierre);
		
		JLabel lblFechaCierre = new JLabel("Fecha cierre");
		lblFechaCierre.setBounds(231, 103, 67, 14);
		panel_3.add(lblFechaCierre);
		
		fechaCreacion = new JDateChooser();
		fechaCreacion.setEnabled(false);
		fechaCreacion.setBounds(324, 75, 126, 20);
		panel_3.add(fechaCreacion);
		
		JButton btnCancelar = new JButton("Salir");
		btnCancelar.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				padre.nullTareasExaminar();
				dispose();
			}
		});
		btnCancelar.setBounds(377, 592, 89, 23);
		contentPane.add(btnCancelar);
		
		JPanel panel_1 = new JPanel();
		panel_1.setBorder(new TitledBorder(null, "Contacto de origen", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel_1.setBounds(10, 213, 456, 138);
		contentPane.add(panel_1);
		panel_1.setLayout(null);
		
		JLabel lblFecha = new JLabel("Fecha");
		lblFecha.setBounds(6, 19, 46, 14);
		panel_1.add(lblFecha);
		
		JLabel lblUsuario = new JLabel("Usuario");
		lblUsuario.setBounds(6, 44, 46, 14);
		panel_1.add(lblUsuario);
		
		JLabel lblNewLabel = new JLabel("Area de interes");
		lblNewLabel.setBounds(231, 19, 80, 14);
		panel_1.add(lblNewLabel);
		
		JLabel lblCursoDeInteres = new JLabel("Curso de interes");
		lblCursoDeInteres.setBounds(231, 44, 80, 14);
		panel_1.add(lblCursoDeInteres);
		
		contactoOrigenUsuario = new JTextField();
		contactoOrigenUsuario.setEnabled(false);
		contactoOrigenUsuario.setEditable(false);
		contactoOrigenUsuario.setBounds(96, 41, 126, 20);
		panel_1.add(contactoOrigenUsuario);
		contactoOrigenUsuario.setColumns(10);
		
		contactoOrigenArea = new JTextField();
		contactoOrigenArea.setEditable(false);
		contactoOrigenArea.setEnabled(false);
		contactoOrigenArea.setBounds(324, 16, 126, 20);
		panel_1.add(contactoOrigenArea);
		contactoOrigenArea.setColumns(10);
		
		contactoOrigenCurso = new JTextField();
		contactoOrigenCurso.setEditable(false);
		contactoOrigenCurso.setEnabled(false);
		contactoOrigenCurso.setBounds(324, 41, 126, 20);
		panel_1.add(contactoOrigenCurso);
		contactoOrigenCurso.setColumns(10);
		
		JPanel panel_2 = new JPanel();
		panel_2.setBorder(new TitledBorder(null, "Observaciones", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel_2.setBounds(6, 69, 440, 64);
		panel_1.add(panel_2);
		panel_2.setLayout(null);
		
		contactoOrigenObs = new JTextPane();
		contactoOrigenObs.setEditable(false);
		contactoOrigenObs.setBounds(6, 16, 423, 41);
		panel_2.add(contactoOrigenObs);
		
		contactoOrigenFecha = new JDateChooser();
		contactoOrigenFecha.setEnabled(false);
		contactoOrigenFecha.setBounds(96, 16, 125, 20);
		panel_1.add(contactoOrigenFecha);
		
		JPanel panel_4 = new JPanel();
		panel_4.setLayout(null);
		panel_4.setBorder(new TitledBorder(null, "Contacto de cierre", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel_4.setBounds(10, 362, 456, 138);
		contentPane.add(panel_4);
		
		JLabel label_1 = new JLabel("Fecha");
		label_1.setBounds(6, 19, 46, 14);
		panel_4.add(label_1);
		
		JLabel label_2 = new JLabel("Usuario");
		label_2.setBounds(6, 44, 46, 14);
		panel_4.add(label_2);
		
		JLabel label_3 = new JLabel("Area de interes");
		label_3.setBounds(231, 19, 80, 14);
		panel_4.add(label_3);
		
		JLabel label_4 = new JLabel("Curso de interes");
		label_4.setBounds(231, 44, 80, 14);
		panel_4.add(label_4);
		
		contactoCierreUsuario = new JTextField();
		contactoCierreUsuario.setEditable(false);
		contactoCierreUsuario.setEnabled(false);
		contactoCierreUsuario.setColumns(10);
		contactoCierreUsuario.setBounds(96, 41, 126, 20);
		panel_4.add(contactoCierreUsuario);
		
		contactoCierreArea = new JTextField();
		contactoCierreArea.setEditable(false);
		contactoCierreArea.setEnabled(false);
		contactoCierreArea.setColumns(10);
		contactoCierreArea.setBounds(324, 16, 126, 20);
		panel_4.add(contactoCierreArea);
		
		contactoCierreCurso = new JTextField();
		contactoCierreCurso.setEditable(false);
		contactoCierreCurso.setEnabled(false);
		contactoCierreCurso.setColumns(10);
		contactoCierreCurso.setBounds(324, 41, 126, 20);
		panel_4.add(contactoCierreCurso);
		
		JPanel panel_5 = new JPanel();
		panel_5.setLayout(null);
		panel_5.setBorder(new TitledBorder(null, "Observaciones", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel_5.setBounds(6, 69, 440, 64);
		panel_4.add(panel_5);
		
		contactoCierreObs = new JTextPane();
		contactoCierreObs.setEditable(false);
		contactoCierreObs.setBounds(6, 16, 423, 41);
		panel_5.add(contactoCierreObs);
		
		contactoCierreFecha = new JDateChooser();
		contactoCierreFecha.setEnabled(false);
		contactoCierreFecha.setBounds(96, 16, 125, 20);
		panel_4.add(contactoCierreFecha);
		
		JPanel panel_6 = new JPanel();
		panel_6.setVisible(false);
		panel_6.setBorder(new TitledBorder(null, "Motivo de anulacion", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel_6.setBounds(14, 502, 449, 64);
		contentPane.add(panel_6);
		panel_6.setLayout(null);
		if(tarea.getEstado().equals("Cancelada"))
		{
			panel_6.setVisible(true);
		}
			
		
		motivoCancelacion = new JTextPane();
		motivoCancelacion.setBounds(6, 16, 433, 41);
		panel_6.add(motivoCancelacion);
		motivoCancelacion.setEditable(false);
		if(tarea.getEstado().equals("Cancelada"))
		{
			motivoCancelacion.setText(TareaControlador.getMotivoCancelacion(tarea));
		}
		this.llenarVentana();
	}
}
